// 接口
// 普通对象
// interface UserState {
// 	name: string
// 	age: number
// 	sex?: string
// 	readonly code: number
// }

// 函数 接口
// interface AddFn {
// 	(a: number, b: number, c: number): number
// }
// let add: (a: number, b: number, c: number) => number
// add = function (x: number, y: number, z: number) {
// 	return x + y - z
// };
// const s = add(1, 2, 3)
// console.log(s);

//  数组接口
// const arr1: number[] = [1, 2, 3, 4, 5];
// const arr2: Array<number> = [1, 2, 3, 4, 5];

// interface IterArr {
//   [propName: number]: string | number;
// }
// const arr3: IterArr = ["a", "b", "c", 1];

// // 类接口
// interface PersonState {
// 	name: string
// 	age: number
// 	sex?: '男' | '女' 
// 	readonly code: number
// }

// class Person implements PersonState {
// 	name: string
// 	age: number
// 	code: number
// 	sex: '男' | '女' = '女'
// 	constructor(name: string, age: number) {
// 		this.name = name
// 		this.age = age
// 		this.code = Math.random()
// 	}
// }

// const p = new Person('张三', 18)
// p.sex = '男'
// p.code = 1231231
// p.name = '李四'
// console.log(p)
